home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1503.txt < prev    next >
Text File  |  1994-08-01  |  34KB  |  787 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                      K. McCloghrie
  8. Request for Comments: 1503                            Hughes LAN Systems
  9.                                                                  M. Rose
  10.                                             Dover Beach Consulting, Inc.
  11.                                                              August 1993
  12.  
  13.  
  14.                 Algorithms for Automating Administration
  15.                            in SNMPv2 Managers
  16.  
  17. Status of this Memo
  18.  
  19.    This memo provides information for the Internet community.  It does
  20.    not specify an Internet standard.  Distribution of this memo is
  21.    unlimited.
  22.  
  23. Table of Contents
  24.  
  25.    1. Introduction ..........................................    1
  26.    2. Implementation Model ..................................    1
  27.    3. Configuration Assumptions .............................    3
  28.    4. Normal Operations .....................................    4
  29.    4.1 Getting a Context Handle .............................    4
  30.    4.2 Requesting an Operation ..............................    7
  31.    5. Determining and Using Maintenance Knowledge ...........    8
  32.    5.1 Determination of Synchronization Knowledge ...........    9
  33.    5.2 Use of Clock Synchronization Knowledge ...............   10
  34.    5.3 Determination of Secret Update Knowledge .............   11
  35.    5.4 Use of Secret Update Knowledge .......................   13
  36.    6. Other Kinds and Uses of Maintenance Knowledge .........   13
  37.    7. Security Considerations ...............................   13
  38.    8. Acknowledgements ......................................   13
  39.    9. References ............................................   14
  40.    10. Authors' Addresses ...................................   14
  41.  
  42. 1.  Introduction
  43.  
  44.    When a user invokes an SNMPv2 [1] management application, it may be
  45.    desirable for the user to specify the minimum amount of information
  46.    necessary to establish and maintain SNMPv2 communications.  This memo
  47.    suggests an approach to achieve this goal.
  48.  
  49. 2.  Implementation Model
  50.  
  51.    In order to discuss the approach outlined in this memo, it is useful
  52.    to have a model of how the various parts of an SNMPv2 manager fit
  53.    together.  The model assumed in this memo is depicted in Figure 2.1.
  54.    This model is, of course, merely for expository purposes, and the
  55.  
  56.  
  57.  
  58. McCloghrie & Rose                                               [Page 1]
  59.  
  60. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  61.  
  62.  
  63.    approach should be readily adaptable to other models.
  64.  
  65.                                  (Human) User
  66.                                       *
  67.                                       *
  68.                    ===========User Interface (UI)===========
  69.                                       *
  70.                               +--------------------------+
  71.                           ... | Management Application N |
  72.                        +---------------------------+     |
  73.                        | Management Application 2  |-----+
  74.                    +--------------------------+    |   *
  75.                    | Management Application 1 |----+   *
  76.                    +--------------------------+  *     *
  77.                                            *     *     *
  78.                   ========Management API======================
  79.                       *                                  *
  80.                       *             ________             *
  81.                 +-------------+    / Local  \    +---------------+
  82.                 | Context     |***/  Party   \***| SNMP protocol |
  83.                 | Resolver(s) |   \ Database /   |   engine(s)   |
  84.                 +-------------+    \________/    +---------------+
  85.                                                          *
  86.                                                          *
  87.                             ===========Transport APIs============
  88.                                              *
  89.                              +---------------------------------+
  90.                              | Transport Stacks (e.g., UDP/IP) |
  91.                              +---------------------------------+
  92.                                              *
  93.                                          Network(s)
  94.  
  95.                  Figure 2.1  SNMPv2 Manager Implementation Model
  96.  
  97.    Note that there might be just one SNMP protocol engine and one
  98.    "context resolver" which are accessed by all local management
  99.    applications, or, each management application might have its own SNMP
  100.    protocol engine and its own "context resolver", all of which have
  101.    shared access to the local party database [2].
  102.  
  103.    In addition to the elements shown in the figure, there would need to
  104.    be an interface for the administrator to access the local party
  105.    database, e.g., for configuring initial information, including
  106.    secrets.  There might also be facilities for different users to have
  107.    different access privileges, and/or other reasons for there to be
  108.    multiple (coordinated) subsets of the local party database.
  109.  
  110.  
  111.  
  112.  
  113.  
  114. McCloghrie & Rose                                               [Page 2]
  115.  
  116. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  117.  
  118.  
  119. 3.  Configuration Assumptions
  120.  
  121.    Now, let's assume that the administrator has already configured a
  122.    local party database for the management application, e.g.,
  123.  
  124.                partyIdentifier:         initialPartyId.a.b.c.d.1
  125.                partyIndex:              1
  126.                partyTAddress:           a.b.c.d:161
  127.                partyLocal:              false
  128.                partyAuthProtocol:       noAuth
  129.                partyPrivProtocol:       noPriv
  130.  
  131.                partyIdentifier:         initialPartyId.a.b.c.d.2
  132.                partyIndex:              2
  133.                partyTAddress:           local address
  134.                partyLocal:              true
  135.                partyAuthProtocol:       noAuth
  136.                partyPrivProtocol:       noPriv
  137.  
  138.                partyIdentifier:         initialPartyId.a.b.c.d.3
  139.                partyIndex:              3
  140.                partyTAddress:           a.b.c.d:161
  141.                partyLocal:              false
  142.                partyAuthProtocol:       md5Auth
  143.                partyPrivProtocol:       noPriv
  144.  
  145.                partyIdentifier:         initialPartyId.a.b.c.d.4
  146.                partyIndex:              4
  147.                partyTAddress:           local address
  148.                partyLocal:              true
  149.                partyAuthProtocol:       md5Auth
  150.                partyPrivProtocol:       noPriv
  151.  
  152.                contextIdentifier:       initialContextId.a.b.c.d.1
  153.                contextIndex:            1
  154.                contextLocal:            false
  155.                textual handle:          router.xyz.com-public
  156.  
  157.                contextIdentifier:       initialContextId.a.b.c.d.2
  158.                contextIndex:            2
  159.                contextLocal:            false
  160.                textual handle:          router.xyz.com-all
  161.  
  162.                aclTarget (dest. party): 1
  163.                aclSubject (src party):  2
  164.                aclResources (context):  1
  165.                aclPrivileges:           get, get-next, get-bulk
  166.  
  167.  
  168.  
  169.  
  170. McCloghrie & Rose                                               [Page 3]
  171.  
  172. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  173.  
  174.  
  175.                aclTarget (dest. party): 3
  176.                aclSubject (src party):  4
  177.                aclResources (context):  2
  178.                aclPrivileges:           get, get-next, get-bulk, set
  179.  
  180.    Note that each context has associated with it a "textual handle".
  181.    This is simply a string chosen by the administrator to aid in
  182.    selecting a context.
  183.  
  184. 4.  Normal Operations
  185.  
  186.    When the user tells the management application to do something, the
  187.    user shouldn't have to specify party or context information.
  188.  
  189.    One approach to achieve this is as follows: the user provides a
  190.    textual string indicating the managed objects to be manipulated, and
  191.    the management application invokes the "context resolver" to map this
  192.    into a "context handle", and later, when an SNMPv2 operation is
  193.    performed, the "context handle" and a minimal set of security
  194.    requirements are provided to the management API.
  195.  
  196. 4.1.  Getting a Context Handle
  197.  
  198.    A "context handle" is created when the management application
  199.    supplies a textual string, that was probably given to it by the user.
  200.    The "context resolver" performs these steps based on the
  201.    application's input:
  202.  
  203.           (1)  In the local party database, each context has associated
  204.                with it a unique string, termed its "textual handle".  If
  205.                a context in the local database has a textual handle
  206.                which exactly matches the textual string, then the
  207.                "context resolver" returns a handle identifying that
  208.                context.
  209.  
  210.                So, if the application supplies "router.xyz.com-public",
  211.                then the "context resolver" returns a handle to the first
  212.                context; instead, if the application supplies
  213.                "router.xyz.com-all", then the "context resolver" returns
  214.                a handle to the second context.
  215.  
  216.           (2)  Otherwise, if any contexts are present whose textual
  217.                handle is longer than the textual string, and whose
  218.                initial characters exactly match the entire textual
  219.                string, then the "context resolver" returns a handle
  220.                identifying all of those contexts.
  221.  
  222.                So, if the application supplies "router.xyz.com", then
  223.  
  224.  
  225.  
  226. McCloghrie & Rose                                               [Page 4]
  227.  
  228. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  229.  
  230.  
  231.                the "context resolver" returns a handle to both contexts.
  232.  
  233.           (3)  Otherwise, if the textual string specifies an IP address
  234.                or a domain name which resolves to a single IP address,
  235.                then the "context resolver" adds to the local party
  236.                database, a volatile noAuth/noPriv party pair, a volatile
  237.                context, and a volatile access control entry allowing
  238.                interrogation operations, using the "initialPartyId" and
  239.                "initialContextId" conventions.  The "context resolver"
  240.                returns a handle identifying the newly created context.
  241.  
  242.                So, if the application supplies "89.0.0.1", then the
  243.                "context resolver" adds the following information to the
  244.                local party database:
  245.  
  246.                     partyIdentifier:         initialPartyId.89.0.0.1.1
  247.                     partyIndex:              101
  248.                     partyTAddress:           89.0.0.1:161
  249.                     partyLocal:              false
  250.                     partyAuthProtocol:       noAuth
  251.                     partyPrivProtocol:       noPriv
  252.                     partyStorageType:        volatile
  253.  
  254.                     partyIdentifier:         initialPartyId.89.0.0.1.2
  255.                     partyIndex:              102
  256.                     partyTAddress:           local address
  257.                     partyLocal:              true
  258.                     partyAuthProtocol:       noAuth
  259.                     partyPrivProtocol:       noPriv
  260.                     partyStorageType:        volatile
  261.  
  262.                     contextIdentifier:       initialContextId.89.0.0.1.1
  263.                     contextIndex:            101
  264.                     contextLocal:            false
  265.                     contextStorageType:      volatile
  266.                     textual handle:          89.0.0.1
  267.  
  268.                     aclTarget (dest. party): 101
  269.                     aclSubject (src party):  102
  270.                     aclResources (context):  101
  271.                     aclPrivileges:           get, get-next, get-bulk
  272.                     aclStorageType:          volatile
  273.  
  274.                and the "context resolver" returns a handle to the newly
  275.                created context.
  276.  
  277.           (4)  Otherwise, if the textual string specifies a domain name
  278.                which resolves to multiple IP addresses, then for each
  279.  
  280.  
  281.  
  282. McCloghrie & Rose                                               [Page 5]
  283.  
  284. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  285.  
  286.  
  287.                such IP address, the "context resolver" adds to the local
  288.                party database, a volatile noAuth/noPriv party pair, a
  289.                volatile context, and a volatile access control entry
  290.                allowing interrogation operations, using the
  291.                "initialPartyId" and "initialContextId" conventions.
  292.                Then, the "context resolver" returns a handle identifying
  293.                all of those newly created contexts.
  294.  
  295.           (5)  Otherwise, if the textual string contains a '/'-
  296.                character, and everything to the left of the first
  297.                occurrence of this character specifies an IP address or a
  298.                domain name which resolves to a single IP address, then
  299.                the "context resolver" adds to the local party database,
  300.                a volatile SNMPv1 party, a volatile context, and a
  301.                volatile access control entry allowing interrogation
  302.                operations.  (The SNMPv1 community string consists of any
  303.                characters following the first occurrence of the '/'-
  304.                character in the textual string.) Then, the "context
  305.                resolver" returns a handle identifying the newly created
  306.                context.
  307.  
  308.                So, if the application supplied "89.0.0.2/public", then
  309.                the "context resolver" adds the following information to
  310.                the local party database:
  311.  
  312.                     partyIdentifier:         initialPartyId.89.0.0.2.1
  313.                     partyIndex:              201
  314.                     partyTDomain:            rfc1157Domain
  315.                     partyTAddress:           89.0.0.2:161
  316.                     partyLocal:              false
  317.                     partyAuthProtocol:       rfc1157noAuth
  318.                     partyAuthPrivate:        public
  319.                     partyPrivProtocol:       noPriv
  320.                     partyStorageType:        volatile
  321.  
  322.                     contextIdentifier:       initialContextId.89.0.0.2.1
  323.                     contextIndex:            201
  324.                     contextLocal:            false
  325.                     contextStorageType:      volatile
  326.                     textual handle:          89.0.0.2
  327.  
  328.                     aclTarget (dest. party): 201
  329.                     aclSubject (src party):  201
  330.                     aclResources (context):  201
  331.                     aclPrivileges:           get, get-next, get-bulk
  332.                     aclStorageType:          volatile
  333.  
  334.                and the "context resolver" returns a handle to the the
  335.  
  336.  
  337.  
  338. McCloghrie & Rose                                               [Page 6]
  339.  
  340. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  341.  
  342.  
  343.                newly created context.
  344.  
  345.           (6)  Otherwise, if the textual string contains a '/'-
  346.                character, and everything to the left of the first
  347.                occurrence of this character specifies a domain name
  348.                which resolves to multiple IP addresses, then for each
  349.                such IP address, the "context resolver" adds to the local
  350.                party database, a volatile SNMPv1 party, a volatile
  351.                context, and a volatile access control entry allowing
  352.                interrogation operations.  (The SNMPv1 community string
  353.                consists of any characters following the first occurrence
  354.                of the '/'-character in the textual string.) Then, the
  355.                "context resolver" returns a handle identifying all of
  356.                those newly created contexts.
  357.  
  358.           (7)  Otherwise, an error is raised.
  359.  
  360. 4.2.  Requesting an Operation
  361.  
  362.    Later, when an SNMPv2 operation is to be performed, the management
  363.    application supplies a "context handle" and a minimal set of security
  364.    requirements to the management API:
  365.  
  366.           (1)  If the "context handle" refers to a single context, then
  367.                all access control entries having that context as its
  368.                aclResources, allowing the specified operation, having a
  369.                non-local SNMPv2 party as its aclTarget, which satisfies
  370.                the privacy requirements, and having a local party as its
  371.                aclSubject, which satisfies the authentication
  372.                requirements, are identified.
  373.  
  374.                So, if the application wanted to issue a get-next
  375.                operation, with no security requirements, and supplied a
  376.                "context handle" identifying context #1, then acl #1
  377.                would be identified.
  378.  
  379.           (2)  For each such access control entry, the one which
  380.                minimally meets the security requirements is selected for
  381.                use.  If no such entry is identified, and authentication
  382.                requirements are present, then the operation will be not
  383.                performed.
  384.  
  385.                So, if the application requests a get-next operation,
  386.                with no security requirements, and supplies a "context
  387.                handle" identifying context #1, and step 1 above
  388.                identified acl #1, then because acl #1 satisfies the no-
  389.                security requirements, the operation would be generated
  390.                using acl #1, i.e., using party #1, party #2, and context
  391.  
  392.  
  393.  
  394. McCloghrie & Rose                                               [Page 7]
  395.  
  396. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  397.  
  398.  
  399.                #1.
  400.  
  401.           (3)  Otherwise, all access control entries having the (single)
  402.                context as its aclResources, allowing the specified
  403.                operation, and having a non-local SNMPv1 party as its
  404.                aclTarget, are identified.  If no such entry is
  405.                identified, then the operation will not performed.
  406.                Otherwise, any of the identified access control entries
  407.                may be selected for use.
  408.  
  409.                The effect of separating out step 3 is to prefer SNMPv2
  410.                communications over SNMPv1 communications.
  411.  
  412.           (4)  If the "context handle" refers to more than one context,
  413.                then all access control entries whose aclResources refers
  414.                any one of the contexts, are identified.  For each such
  415.                context, step 2 is performed, and any (e.g., the first)
  416.                access control entry identified is selected for use.  If
  417.                no access control entry is identified, then step 3 is
  418.                performed for each such context, and any (e.g., the
  419.                first) access control entry identified is selected for
  420.                use.
  421.  
  422.                So, if the application wanted to issue a get-bulk
  423.                operation, with no security requirements, and supplied a
  424.                "context handle" identifying contexts #1 and #2, then
  425.                acls #1 and #2 would be identified in step 1; and, in
  426.                step 2, party #1, party #2, and context #1 would be
  427.                selected.
  428.  
  429.                However, if the application wanted to issue an
  430.                authenticated get-bulk operation, and supplied a "context
  431.                handle" identifying contexts #1 and #2, then acls #1 and
  432.                #2 would still be identified in step 1; but, in step 2,
  433.                only acl #2 satisfies the security requirement, and so,
  434.                party #3, party #4, and context #2 would be selected.
  435.  
  436.           (5)  If no access control entry is identified, then an error
  437.                is raised.
  438.  
  439.    Note that for steps 1 and 3, an implementation might choose to pre-
  440.    compute (i.e., cache) for each context those access control entries
  441.    having that context as its aclResources.
  442.  
  443. 5.  Determining and Using Maintenance Knowledge
  444.  
  445.    When using authentication services, two "maintenance" tasks may have
  446.    to be performed: clock synchronization and secret update.  These
  447.  
  448.  
  449.  
  450. McCloghrie & Rose                                               [Page 8]
  451.  
  452. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  453.  
  454.  
  455.    tasks should be performed transparently, independent of the
  456.    management applications, and without user/administrator intervention.
  457.    In order to operate transparently, the SNMP protocol engine must
  458.    maintain "maintenance knowledge" (knowledge of which parties and
  459.    contexts to use).  It is useful for this maintenance knowledge to be
  460.    determined at run-time, rather than being directly configured by an
  461.    administrator.
  462.  
  463.    One approach to achieve this is as follows: the first time that the
  464.    SNMP protocol engine determines that it will be communicating with
  465.    another SNMPv2 entity, the SNMP protocol engine first consults its
  466.    local party database and then interrogates its peer, before engaging
  467.    in the actual communications.
  468.  
  469.    Note that with such an approach, both the clock synchronization
  470.    knowledge, and the secret update knowledge, associated with a party,
  471.    can each be represented as (a pointer to) an access control entry.
  472.    Further note that once an implementation has computed this knowledge,
  473.    it might choose to retain this knowledge across restarts.
  474.  
  475. 5.1.  Determination of Synchronization Knowledge
  476.  
  477.    To determine maintenance knowledge for clock synchronization:
  478.  
  479.           (1)  The SNMP protocol engine examines each active, non-local,
  480.                noAuth party.
  481.  
  482.                So, this would be party #1.
  483.  
  484.           (2)  For each such party, P, all access control entries having
  485.                that party as its aclTarget, and allowing the get-bulk
  486.                operation, are identified.
  487.  
  488.                So, for party #1, this would be acl #1.
  489.  
  490.           (3)  For each such access control entry, A, at least one
  491.                active, non-local, md5Auth party, Q, must be present
  492.                which meets the following criteria:
  493.  
  494.             -  the transport domain and address of P and Q are
  495.                identical;
  496.  
  497.             -  an access control entry, B, exists having either: Q as
  498.                its aclTarget and a local party, R, as its aclSubject,
  499.                or, Q as its aclSubject and a local party, R, as its
  500.                aclTarget; and,
  501.  
  502.             -  no clock synchronization knowledge is known for R.
  503.  
  504.  
  505.  
  506. McCloghrie & Rose                                               [Page 9]
  507.  
  508. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  509.  
  510.  
  511.                So, for acl #1, party #3 is identified as having the same
  512.                transport domain and address as party #1, and being
  513.                present as the aclTarget in acl #2, which has local party
  514.                #4 as the aclSubject.
  515.  
  516.           (4)  Whenever such a party, Q, is present, then all instances
  517.                of the "partyAuthProtocol" and "partyAuthClock" objects
  518.                are retrieved via the get-bulk operator using the parties
  519.                and context identified by the access control entry, A.
  520.  
  521.                So, party #1, party #2, and context #1 would be used to
  522.                sweep these two columns on the agent.
  523.  
  524.           (5)  Only those instances corresponding to parties in the
  525.                local database, which have no clock synchronization
  526.                knowledge, and are local mdAuth parties, are examined.
  527.  
  528.                So, only instances corresponding to party #4 are
  529.                examined.
  530.  
  531.           (6)  For each instance of "partyAuthProtocol", if the
  532.                corresponding value does not match the value in the local
  533.                database, then a configuration error is signalled, and
  534.                the corresponding party is marked as being unavailable
  535.                for maintenance knowledge.
  536.  
  537.                So, we make sure that the manager and the agent agree
  538.                that party #4 is an md5Auth party.
  539.  
  540.           (7)  For each instance of "partyAuthClock", if the
  541.                corresponding value is greater than the value in the
  542.                local database, then the authentication clock of the
  543.                party is warped according to the procedures defined in
  544.                Section 5.3 of [3].  Regardless, A is recorded as the
  545.                clock synchronization knowledge for the corresponding
  546.                party.
  547.  
  548.                So, if the column sweep returns information for party #4,
  549.                then party #4's authentication clock is advanced if
  550.                necessary, and the clock synchronization knowledge for
  551.                party #4 is recorded as acl #1.
  552.  
  553. 5.2.  Use of Clock Synchronization Knowledge
  554.  
  555.    Whenever a response to an authenticated operation is not received,
  556.    the SNMP protocol engine may suspect that a clock synchronization
  557.    problem for the source party is the cause [3].  The SNMP protocol
  558.    engine may use different criteria when making this determination; for
  559.  
  560.  
  561.  
  562. McCloghrie & Rose                                              [Page 10]
  563.  
  564. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  565.  
  566.  
  567.    example: on a retrieval operation, the operation might be retried
  568.    using an exponential back-off algorithm; in contrast, on a
  569.    modification operation, the operation would not be automatically
  570.    retried.
  571.  
  572.    When clock mis-synchronization for a source party, S, is suspected,
  573.    if clock synchronization knowledge for S is present, then this
  574.    knowledge is used to perform steps 4-7 above, which should retrieve
  575.    the instances of the "partyAuthProtocol" and "partyAuthClock" objects
  576.    which correspond to S (and perhaps other parties as well).  If
  577.    information on these objects cannot be determined, then S is marked
  578.    as no longer having clock synchronization knowledge.  Otherwise, if
  579.    the value of the corresponding instance of "partyAuthClock" is
  580.    greater than the value in the local database, then the authentication
  581.    clock of the party is warped according to the procedures defined in
  582.    Section 5.3 of [3], and the original operation is retried, if
  583.    appropriate.
  584.  
  585.    So, if traffic from party #4 times out, then a column sweep is
  586.    automatically initiated, using acl #1 (party #1, party #2, context
  587.    #1).
  588.  
  589.    When clock mis-synchronization for a source party, S, is suspected,
  590.    and clock synchronization knowledge for S is not present, then the
  591.    full algorithm above can be used.  In this case, if clock
  592.    synchronization knowledge for S can be determined, and as a result,
  593.    "partyAuthClock" value for S in the local database is warped
  594.    according to the procedures defined in Section 5.3 of [3], then the
  595.    original operation is retried, if appropriate.
  596.  
  597. 5.3.  Determination of Secret Update Knowledge
  598.  
  599.    To determine maintenance knowledge for secret update:
  600.  
  601.           (1)  The SNMP protocol engine examines each active, non-local,
  602.                md5Auth party.
  603.  
  604.                So, this would be party #3.
  605.  
  606.           (2)  For each such party, P, all access control entries having
  607.                that party as its aclTarget, and allowing the get-bulk
  608.                and set operations, are identified.
  609.  
  610.                So, for party #3, this would be acl #2.
  611.  
  612.           (3)  For each such access control entry, A, at least one
  613.                active, non-local, md5Auth party, Q, must be present
  614.                which meets the following criteria:
  615.  
  616.  
  617.  
  618. McCloghrie & Rose                                              [Page 11]
  619.  
  620. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  621.  
  622.  
  623.             -  the transport domain and address of P and Q are
  624.                identical;
  625.  
  626.             -  an access control entry, B, exists having either: Q as
  627.                its aclTarget and a local party, R, as its aclSubject,
  628.                or, Q as its aclSubject and a local party, R, as its
  629.                aclTarget; and,
  630.  
  631.             -  no secret update knowledge is known for R.
  632.  
  633.                So, for acl #2, party #3 is (redundantly) identified as
  634.                having the same transport domain and address as party #3,
  635.                and being present as the aclTarget in acl #2, which has
  636.                local party #4 as the aclSubject.
  637.  
  638.           (4)  Whenever such a party, Q, is present, then all instances
  639.                of the "partyAuthProtocol", "partyAuthClock", and
  640.                "partyAuthPrivate" objects are retrieved via the get-bulk
  641.                operator using the parties and context identified by the
  642.                access control entry, A.
  643.  
  644.                So, party #3, party #4, and context #2 would be used to
  645.                sweep these three columns on the agent.
  646.  
  647.           (5)  Only those instances corresponding to parties in the
  648.                local database, which have no secret update knowledge,
  649.                and are md5Auth parties, are examined.
  650.  
  651.                So, only instances corresponding to parties #3 and #4 are
  652.                examined.
  653.  
  654.           (6)  For each instance of "partyAuthProtocol", if the
  655.                corresponding value does not match the value in the local
  656.                database, then a configuration error is signalled, and
  657.                this party is marked as being unavailable for maintenance
  658.                knowledge.
  659.  
  660.                So, we make sure that the manager and the agent agree
  661.                that both party #3 and #4 are md5Auth parties.
  662.  
  663.           (7)  For each instance of "partyAuthPrivate", if a
  664.                corresponding instance of "partyAuthClock" was also
  665.                returned, then A is recorded as the secret update
  666.                knowledge for this party.
  667.  
  668.                So, if the column sweep returned information on party #3,
  669.                then the clock synchronization knowledge for party #3
  670.                would be recorded as acl #2.  Further, if the column
  671.  
  672.  
  673.  
  674. McCloghrie & Rose                                              [Page 12]
  675.  
  676. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  677.  
  678.  
  679.                sweep returned information on party #4, then the clock
  680.                synchronization knowledge for party #4 would be recorded
  681.                as acl #2.
  682.  
  683. 5.4.  Use of Secret Update Knowledge
  684.  
  685.    Whenever the SNMP protocol engine determines that the authentication
  686.    clock of a party, S, is approaching an upper limit, and secret update
  687.    knowledge for S is present, then this knowledge is used to modify the
  688.    current secret of S and reset the authentication clock of S,
  689.    according to the procedures defined in Section 5.4 of [3].
  690.  
  691.    So, whenever the SNMP protocol engine decides to update the secrets
  692.    for party #4, it can automatically use acl #2 (party #3, party #4,
  693.    context #2) for this purpose.
  694.  
  695. 6.  Other Kinds and Uses of Maintenance Knowledge
  696.  
  697.    Readers should note that there are other kinds of maintenance
  698.    knowledge that an SNMPv2 manager could derive and use.  In the
  699.    interests of brevity, one example is now considered: when an SNMPv2
  700.    manager first communicates with an agent, it may wish to synchronize
  701.    the maximum-message size values held by itself and the agent.
  702.  
  703.    For those parties that execute at the agent, the manager retrieves
  704.    the corresponding instances of partyMaxMessageSize (preferrably using
  705.    authentication), and, if need be, adjusts the values held in the
  706.    manager's local party database.  Thus, the maintenance knowledge to
  707.    be determined must allow for retrieval of partyMaxMessageSize.
  708.  
  709.    For those parties that execute at the manager, the manager retrieves
  710.    the corresponding instances of partyMaxMessageSize (using
  711.    authentication), and, if need be, adjusts the values held in the
  712.    agent's local party database using the set operation.  Thus, the
  713.    maintenance knowledge to be determined must allow both for retrieval
  714.    and modification of partyMaxMessageSize.
  715.  
  716. 7.  Security Considerations
  717.  
  718.    Security issues are not discussed in this memo.
  719.  
  720. 8.  Acknowledgements
  721.  
  722.    Jeffrey D. Case of SNMP Research and the University of Tennessee, and
  723.    Robert L. Stewart of Xyplex, both provided helpful comments on the
  724.    ideas contained in this document and the presentation of those ideas.
  725.  
  726.  
  727.  
  728.  
  729.  
  730. McCloghrie & Rose                                              [Page 13]
  731.  
  732. RFC 1503      Automating Administration in SNMPv2 Manager    August 1993
  733.  
  734.  
  735. 9.  References
  736.  
  737.    [1] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
  738.        "Introduction to version 2 of the Internet-standard Network
  739.        Management Framework", RFC 1441, SNMP Research, Inc., Hughes LAN
  740.        Systems, Dover Beach Consulting, Inc., Carnegie Mellon
  741.        University, April 1993.
  742.  
  743.    [2] McCloghrie, K., and J. Galvin, "Party MIB for version 2 of the
  744.        Simple Network Management Protocol (SNMPv2)", RFC 1447, Hughes
  745.        LAN Systems, Trusted Information Systems, April 1993.
  746.  
  747.    [3] Galvin, J., and K. McCloghrie, "Security Protocols for version 2
  748.        of the Simple Network Management Protocol (SNMPv2)", RFC 1446,
  749.        Trusted Information Systems, Hughes LAN Systems, April 1993.
  750.  
  751. 10.  Authors' Addresses
  752.  
  753.    Keith McCloghrie
  754.    Hughes LAN Systems
  755.    1225 Charleston Road
  756.    Mountain View, CA  94043
  757.    US
  758.  
  759.    Phone: +1 415 966 7934
  760.    EMail: kzm@hls.com
  761.  
  762.  
  763.    Marshall T. Rose
  764.    Dover Beach Consulting, Inc.
  765.    420 Whisman Court
  766.    Mountain View, CA  94043-2186
  767.    US
  768.  
  769.    Phone: +1 415 968 1052
  770.    EMail: mrose@dbc.mtview.ca.us
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. McCloghrie & Rose                                              [Page 14]
  787.